package cn.sunlelin.educationserver.service.Impl;

import cn.sunlelin.educationserver.entity.Coursetype;
import cn.sunlelin.educationserver.mapper.CoursetypeMapper;
import cn.sunlelin.educationserver.service.CoursetypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;
import java.util.Map;

@Service
public class CoursetypeServiceImpl implements CoursetypeService {
    @Autowired
    CoursetypeMapper coursetypeMapper;
    @Override
    public Boolean createCoursetype(Coursetype coursetype) {
        coursetype.setCreateTime(new Date());
        coursetypeMapper.createCoursetype(coursetype);
        return true;
    }

    @Override
    public Boolean updateCoursetype(Coursetype coursetype) {
        Coursetype t=this.selectCoursetypeById(coursetype.getCoursetypeId());
        if(t==null)
            return false;
        if(!t.getCoursetypeName().equals(coursetype.getCoursetypeName())&&this.selectCoursetypeByName(coursetype.getCoursetypeName())!=null)
            return false;
        coursetype.setUpdateTime(new Date());
        coursetypeMapper.updateCoursetype(coursetype);
        return true;
    }

    @Override
    public List<Coursetype> findAll() {
        return coursetypeMapper.findAll();
    }

    @Override
    public Coursetype selectCoursetypeById(Integer coursetypeId) {
        return coursetypeMapper.selectCoursetypeById(coursetypeId);
    }

    @Override
    public List<Map<String, Object>> selectCoursetypeByFathertypeId(Integer fathertypeId) {
        return coursetypeMapper.selectCoursetypeByFathertypeId(fathertypeId);
    }

    @Override
    public Boolean deleteCoursetype(Integer coursetypeId) {
        if(this.selectCoursetypeById(coursetypeId)==null)
            return false;
        Coursetype coursetype=new Coursetype();
        coursetype.setCoursetypeId(coursetypeId);
        coursetype.setUpdateTime(new Date());
        coursetypeMapper.deleteCoursetype(coursetype);
        return true;
    }

    @Override
    public Coursetype selectCoursetypeByName(String coursetypeName) {
        return coursetypeMapper.selectCoursetypeByName(coursetypeName);
    }
}
